
const WebSocket  = require('ws')
// 创建websocket服务端的对象
const path = require('path')
const fileUtils = require('./utils/file')
const ws = new WebSocket.Server({
  port: 9998,
})

  // 服务端开启监听
module.exports.listen = () => {
  // 对客户端的连接事件进行监听
  // client代表的是客户端的连接socket对象
  ws.on('connection', client => {
    console.log('有客户端连接成功')
    // 对客户端连接对象进行 message 事件的监听
    // msg 代表由客户端发给服务端的数据
    client.on('message', async msg => {
      console.log('客户端发数据给服务端', msg)
      let payload = JSON.parse(msg)
      const action = payload.action
      if (action === 'getData') {
        let filePath = './data/' + payload.chartName + '.json'
        filePath = path.join(__dirname, filePath)
        const res = await fileUtils.getFileJsonData(filePath)
        payload.data = res
        client.send(JSON.stringify(payload))
      } else {
        // 原封不动的将所接收到的数据转发给每一个处于连接状态的客户端
        ws.clients.forEach(client => {
          client.send(msg)
        })
      }
      // client.send('服务端发数据给客户端')
    })
  })
}